#ifndef RR_SCHEDULER
#define RR_SCHEDULER
#include "Scheduler.h"

class RR_Scheduler : public Abstract_CPUScheduler
{
	public:
		RR_Scheduler(int quantum);
		~RR_Scheduler();
		void sortProcesses();
		void runScheduler();
		void setTimeQuantum(int quantum);



	private:
		bool compareStartTime(vector<Process>::iterator positionOne, vector<Process>::iterator positionTwo);
		void getQueuedProcesses(vector<Process> &available_queue, vector<Process>::iterator &processListItr, int prevProcEndTime);
		void assignValuesToProcessList(Process temp);
		void findProcessID(vector<Process>::iterator &location, int processID);
		
		

		int time_quantum;

};

#endif
